import axios from "axios";
import { Message } from 'element-ui';
import router from "../router";

//请求拦截器
axios.interceptors.request.use(config=>{
    //console.log(JSON.stringify(config))
    //如果存在token,请求携带token
    if(window.sessionStorage.getItem("tokenStr")){
        config.headers['Authorization'] = window.sessionStorage.getItem("tokenStr");
        config.headers['userInfo'] = encodeURIComponent(window.sessionStorage.getItem("userInfo"));
    }
    return config;
},error => {
        console.error(error);
});

//相应拦截器
axios.interceptors.response.use(success=>{
    if(success.status && success.status == 200){
        //console.log(JSON.stringify(success.data))
        if(success.data.code==500 || success.data.code==401 || success.data.code==403){
            Message.error({message:success.data.message});
            return;
        }
        if(success.data.message){
            Message.success({message:success.data.message});
        }

    }
    return success.data;
},error => {console.log(JSON.stringify(error))
    if(error.response.code==504 || error.response.code==403){
        Message.error({message:'服务器被吃了！！！'});
    }else if (error.response.code===403){
        Message.error({message:'权限不足，请联系管理人员！！！'});
    }else if (error.response.code==401){
        Message.error({message:'尚未登入，请先登入！！！'});
        router.replace("/");
    }else {
        if(error.response.data.message){
            Message.error({message:error.response.data.message})
        }else {
            Message.error({message:'未知错误！！！'})
            console.log("未知错误发生在请求路径path:=>"+error.response.data.path)
        }
    }
    return;

});

let base = '';

//传送json格式的post请求
export const postRequest = (url,params)=>{
    return axios({
        method:'post',
        url:`${base}${url}`,
        data:params
    })
}

//传送json格式的put请求
export const putRequest = (url,params)=>{
    return axios({
        method:'put',
        url:`${base}${url}`,
        data:params
    })
}

//传送json格式的get请求
export const getRequest = (url,params)=>{
    return axios({
        method:'get',
        url:`${base}${url}`,
        data:params
    })
}

//传送json格式的put请求
export const deleteRequest = (url,params)=>{
    return axios({
        method:'delete',
        url:`${base}${url}`,
        data:params
    })
}

//摄像头拍照后上传图片
export const putFileAttach = (formData)=>{
    return axios({
        headers: {"Content-Type":"application/x-www-form-urlencoded"},
        method:'post',
        url:`${base}/admin/userface`,
        data:formData
    })
}
